package ipms.appbase;

import ipms.necfgsyn.AppRunTime;

/**
 * @author SPDjnh
 * 应用程序基础类，描述应用程序的基本操作和属性
 */
public abstract class ClsAppBase {
	private String sAppName="";
	private String sAppVer="";
	
	/**
	 * 初始化应用程序
	 * @return
	 */
	protected abstract boolean iniApp();
	
	/**
	 * 装载系统数据
	 * @return
	 */
	public abstract boolean loadData();
	
	/**
	 * 应用程序被关闭时触发
	 */
	
	public abstract void closeApp();
	
	/*
	public ClsAppBase() {
		Runtime.getRuntime().addShutdownHook(new Thread() {
		      public void run() {
		    	  closeApp();
		      }
		});
	}
	*/
	/**
	 * 设置应用程序名称
	 * @param sname
	 */
	protected void setAppName(String sname) {
		this.sAppName=sname;
		AppRunTime.sAppName=sname;
	}
	
	/**
	 * 获取应用程序名称
	 * @return
	 */
	public String getAppName() {
		return this.sAppName;
	}
	
	/**
	 * 获取应用程序路径，包括最后的/
	 * @return
	 */
	public String getAppPath() {
		return ClsPublic.getSysProp("user.dir") + ClsPublic.getSysProp("file.separator");
	}
	
	/**
	 * 设置应用程序版本
	 * @param sver
	 */
	protected void setAppVersion(String sver) {
		this.sAppVer=sver;
		AppRunTime.sAppVer=sver;
	}
	
	/**
	 * 获取应用程序版本
	 * @return
	 */
	public String getAppVersion() {
		return this.sAppVer;
	}
}
